﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="QType.cs" company="Rolosoft Ltd">
//   © Rolosoft Ltd
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

#region License

// Copyright 2013 Rolosoft Ltd
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#endregion

namespace Rsft.Net.Dns.Entities
{
    #region Usings

    using System;

    #endregion

    /// <summary>
    ///     The q type.
    /// </summary>
    public enum QType : ushort
    {
        /// <summary>
        /// The none
        /// </summary>
        None = 0,

        /// <summary>
        ///     a IPV4 host address
        /// </summary>
        A = RecordType.A, 

        /// <summary>
        ///     an authoritative name server
        /// </summary>
        NS = RecordType.NS, 

        /// <summary>
        ///     a mail destination (Obsolete - use MX)
        /// </summary>
        [Obsolete("No longer used. Provided for legacy purposes only.")]
        MD = RecordType.MD, 

        /// <summary>
        ///     a mail forwarder (Obsolete - use MX)
        /// </summary>
        [Obsolete("No longer used. Provided for legacy purposes only.")]
        MF = RecordType.MF, 

        /// <summary>
        ///     the canonical name for an alias
        /// </summary>
        CNAME = RecordType.CNAME, 

        /// <summary>
        ///     marks the start of a zone of authority
        /// </summary>
        SOA = RecordType.SOA, 

        /// <summary>
        ///     a mailbox domain name (EXPERIMENTAL)
        /// </summary>
        MB = RecordType.MB, 

        /// <summary>
        ///     a mail group member (EXPERIMENTAL)
        /// </summary>
        MG = RecordType.MG, 

        /// <summary>
        ///     a mail rename domain name (EXPERIMENTAL)
        /// </summary>
        MR = RecordType.MR, 

        /// <summary>
        ///     a null RR (EXPERIMENTAL)
        /// </summary>
        NULL = RecordType.NULL, 

        /// <summary>
        ///     a well known service description
        /// </summary>
        WKS = RecordType.WKS, 

        /// <summary>
        ///     a domain name pointer
        /// </summary>
        PTR = RecordType.PTR, 

        /// <summary>
        ///     host information
        /// </summary>
        HINFO = RecordType.HINFO, 

        /// <summary>
        ///     mailbox or mail list information
        /// </summary>
        MINFO = RecordType.MINFO, 

        /// <summary>
        ///     mail exchange
        /// </summary>
        MX = RecordType.MX, 

        /// <summary>
        ///     text strings
        /// </summary>
        TXT = RecordType.TXT, 

        /// <summary>
        ///     The Responsible Person rfc1183
        /// </summary>
        RP = RecordType.RP, 

        /// <summary>
        ///     AFS Data Base location
        /// </summary>
        AFSDB = RecordType.AFSDB, 

        /// <summary>
        ///     X.25 address rfc1183
        /// </summary>
        X25 = RecordType.X25, 

        /// <summary>
        ///     ISDN address rfc1183
        /// </summary>
        ISDN = RecordType.ISDN, 

        /// <summary>
        ///     The Route Through rfc1183
        /// </summary>
        RT = RecordType.RT, 

        /// <summary>
        ///     Network service access point address rfc1706
        /// </summary>
        NSAP = RecordType.NSAP, 

        /// <summary>
        ///     Obsolete, rfc1348
        /// </summary>
        [Obsolete("No longer used. Provided for legacy purposes only.")]
        NSAP_PTR = RecordType.NSAPPTR, 

        /// <summary>
        ///     Cryptographic public key signature rfc2931 / rfc2535
        /// </summary>
        SIG = RecordType.SIG, 

        /// <summary>
        ///     Public key as used in DNSSEC rfc2535
        /// </summary>
        KEY = RecordType.KEY, 

        /// <summary>
        ///     Pointer to X.400/RFC822 mail mapping information rfc2163
        /// </summary>
        PX = RecordType.PX, 

        /// <summary>
        ///     Geographical position rfc1712 (obsolete)
        /// </summary>
        [Obsolete("No longer used. Provided for legacy purposes only.")]
        GPOS = RecordType.GPOS, 

        /// <summary>
        ///     a IPV6 host address
        /// </summary>
        AAAA = RecordType.AAAA, 

        /// <summary>
        ///     Location information rfc1876
        /// </summary>
        LOC = RecordType.LOC, 

        /// <summary>
        ///     Obsolete rfc2065 / rfc2535
        /// </summary>
        [Obsolete("No longer used. Provided for legacy purposes only.")]
        NXT = RecordType.NXT, 

        /// <summary>
        ///     *** Endpoint Identifier (Patton)
        /// </summary>
        EID = RecordType.EID, 

        /// <summary>
        ///     *** Nimrod Locator (Patton)
        /// </summary>
        NIMLOC = RecordType.NIMLOC, 

        /// <summary>
        ///     Location of services rfc2782
        /// </summary>
        SRV = RecordType.SRV, 

        /// <summary>
        ///     *** ATM Address (Dobrowski)
        /// </summary>
        ATMA = RecordType.ATMA, 

        /// <summary>
        ///     The Naming Authority Pointer rfc3403
        /// </summary>
        NAPTR = RecordType.NAPTR, 

        /// <summary>
        ///     Key Exchange Delegation Record rfc2230
        /// </summary>
        KX = RecordType.KX, 

        /// <summary>
        ///     *** CERT RFC2538
        /// </summary>
        CERT = RecordType.CERT, 

        /// <summary>
        ///     IPv6 address rfc3363
        /// </summary>
        A6 = RecordType.A6, 

        /// <summary>
        ///     A way to provide aliases for a whole domain, not just a single domain name as with CNAME. rfc2672
        /// </summary>
        DNAME = RecordType.DNAME, 

        /// <summary>
        ///     *** SINK Eastlake
        /// </summary>
        SINK = RecordType.SINK, 

        /// <summary>
        ///     *** OPT RFC2671
        /// </summary>
        OPT = RecordType.OPT, 

        /// <summary>
        ///     *** APL [RFC3123]
        /// </summary>
        APL = RecordType.APL, 

        /// <summary>
        ///     Delegation Signer rfc3658
        /// </summary>
        DS = RecordType.DS, 

        /// <summary>
        ///     *** SSH Key Fingerprint RFC-ietf-secsh-dns
        /// </summary>
        SSHFP = RecordType.SSHFP, 

        /// <summary>
        ///     rfc 4025
        /// </summary>
        IPSECKEY = RecordType.IPSECKEY, 

        /// <summary>
        ///     *** RRSIG RFC-ietf-dnsext-dnssec-2535
        /// </summary>
        RRSIG = RecordType.RRSIG, 

        /// <summary>
        ///     *** NSEC RFC-ietf-dnsext-dnssec-2535
        /// </summary>
        NSEC = RecordType.NSEC, 

        /// <summary>
        ///     *** DNSKEY RFC-ietf-dnsext-dnssec-2535
        /// </summary>
        DNSKEY = RecordType.DNSKEY, 

        /// <summary>
        ///     rfc 4701
        /// </summary>
        DHCID = RecordType.DHCID, 

        /// <summary>
        ///     RFC 5155
        /// </summary>
        NSEC3 = RecordType.NSEC3, 

        /// <summary>
        ///     RFC 5155
        /// </summary>
        NSEC3PARAM = RecordType.NSEC3PARAM, 

        /// <summary>
        ///     RFC -ietf-hip-dns-09.txt
        /// </summary>
        HIP = RecordType.HIP, 

        /// <summary>
        ///     RFC 4408
        /// </summary>
        SPF = RecordType.SPF, 

        /// <summary>
        ///     *** IANA-Reserved
        /// </summary>
        UINFO = RecordType.UINFO, 

        /// <summary>
        ///     *** IANA-Reserved
        /// </summary>
        UID = RecordType.UID, 

        /// <summary>
        ///     *** IANA-Reserved
        /// </summary>
        GID = RecordType.GID, 

        /// <summary>
        ///     *** IANA-Reserved
        /// </summary>
        UNSPEC = RecordType.UNSPEC, 

        /// <summary>
        ///     Transaction key rfc2930
        /// </summary>
        TKEY = RecordType.TKEY, 

        /// <summary>
        ///     Transaction signature rfc2845
        /// </summary>
        TSIG = RecordType.TSIG, 

        /// <summary>
        ///     incremental transfer                  [RFC1995]
        /// </summary>
        IXFR = 251, 

        /// <summary>
        ///     transfer of an entire zone            [RFC1035]
        /// </summary>
        AXFR = 252, 

        /// <summary>
        ///     mailbox-related RRs (MB, MG or MR)    [RFC1035]
        /// </summary>
        MAILB = 253, 

        /// <summary>
        ///     mail agent RRs (Obsolete - see MX)    [RFC1035]
        /// </summary>
        [Obsolete("No longer used. Provided for legacy purposes only.")]
        MAILA = 254, 

        /// <summary>
        ///     A request for all records             [RFC1035]
        /// </summary>
        ANY = 255, 

        /// <summary>
        ///     DNSSEC Trust Authorities    [Weiler]  13 December 2005
        /// </summary>
        TA = RecordType.TA, 

        /// <summary>
        ///     DNSSEC Lookaside Validation [RFC4431]
        /// </summary>
        DLV = RecordType.DLV
    }
}